//整个项目-所有的API接口（后台的地址）-统一在这里管理
//便于管理和修改-节省代码
//起名以API结尾（和别的方法进行区分）
axios.defaults.baseURL = 'http://123.57.109.30:3007'


// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    if (!config.url.startsWith("/api")) { // 不是/api开头的字符串, 都要携带Authorizetion
        // 千万注意, 是往headers身上添加key  (千万别写成config.headers = 这种)
        config.headers['Authorization'] = sessionStorage['token'];
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});


// 响应拦截器
axios.interceptors.response.use(function (response) {//http状态码2或3开头进这里
    var layer = layui.layer;
    let { status, message } = response.data;
    layer.msg(message);
    if (status == 0) {//逻辑码为0时，执行then里的回调函数
        // 对响应数据做点什么
        return response;
    }
    else {//逻辑码为非0时，不让then执行
        // 对响应错误做点什么
        return Promise.reject(message);
    }
}, function (error) {//http状态码4或5开头进这里
    // 对响应错误做点什么
    //解构赋值
    let { response: { data: { message }
    } } = error
    // （layui的方法）弹出身份验证失败的弹窗（message）,同时清空本地存储，并设置时间返回login.html
    layer.msg(message, {
        time: 1500,
        end: function () {
            sessionStorage.removeItem('token')
            window.parent.location.href = '/login.html'
        }

    })
    return Promise.reject(error);
});
//大括号可以删除
// 用户注册
const registerAPI = (argStr, fn) => {
    axios({
        method: 'post',
        url: '/api/reguser',
        data: argStr
    }).then(res => {
        fn(res);
    });
}
// 用户登陆
const loginAPI = (argStr, fn) => {
    axios({
        method: 'post',
        url: '/api/login',
        data: argStr
    }).then(res => {
        fn(res);
    });
}
// 获取用户信息
const getUInfoAPI = (argStr, fn) => {
    axios({
        method: 'GET',
        url: '/my/userinfo',
        // headers: { 'Authorization': sessionStorage.getItem('token') }
    }).then(res => {
        fn(res);
    });
}
const updateInfoAPI = (argStr, fn) => {
    axios({
        method: 'POST',
        url: '/my/userinfo',
        data: argStr,
        // headers: { 'Authorization': sessionStorage.getItem('token') }
    }).then(res => {
        fn(res);
    });
}
const changePassAPI = (argStr, fn) => {
    axios({
        method: 'POST',
        url: '/my/updatepwd',
        data: argStr,
        // headers: { 'Authorization': sessionStorage.getItem('token') }
    }).then(res => {
        fn(res);
    });
}
const upHeadImgAPI = (argStr, fn) => {
    axios({
        method: 'POST',
        url: '/my/update/avatar',
        data: argStr,
        // headers: { 'Authorization': sessionStorage.getItem('token') }
    }).then(res => {
        fn(res);
    });
}

